#include <stdio.h>
#include "lista.h"

int minsegsum(list lst);
int min(alfa e1, alfa e2);

int main(void)
{
	list l;
	int res;
	char exit;
	alfa elem;
	
	exit = 'n';
	l = vacia();
	while (exit != 'y')
	{
		printf("Ingrese el elemento\n");
		scanf("%i", &elem); /*tener en cuenta q si se cambia el tipo alfa hay q cambiar lo q viene dsps del %*/
		getchar();
		l=cons(elem,l);
		printf("Salir? (y/n)\n");
		scanf("%c", &exit);
	}
	
	res = minsegsum(l);
	printf("El segmento de suma minimo es: %i\n", res);
	l = destructor(l);
	
return 0;
}

int minsegsum(list lst)
{
	list ys;
	int a,b,r;
	
	a = 0;
	b = 0;
	ys = lst;
	
	while (!(esvacia(ys)))
	{
		a = min (head(ys)+b, a);
		b = min (0, (head(ys)+b));
		ys = tail(ys);
	}
	
	r = a;

return r;
}

int min(int e1, int e2)
{
	int res;
	if (e1<=e2)
		res = e1;
	else
		res = e2;

return res;
}
